Minecraft Region Manager
This project is intended to ease builds backup/restore during LOTR map resets. While it would have been more universal to do it as a server-sided mod, I'm making it as a plugin as most LOTR servers are already using some version of Bukkit server software and the official server has its own world reset organization. Furthermore, the Bukkit API is better documented. It will be organised around several functional layers: Marking places All the following commands are user accessible. They are intended for a player to manage his own "places to backup" list. The resulting lists are saved in a per player UUID named file in the "userdata" plugin subdirectory. Note that this two step process (marking/backuping) is intentional: players would be able to cheat (duplicating items and entities) if they had direct saving command access (by saving a region with their valuables then moving them in another region to be saved). /markregion 'or '/hmr: mark the world/region file you are in and name it (for player convenience). /markchunk 'or '/hmc: mark the world/region file/chunk you are in and name it. /markarea 'or '/hma: mark the world/region file/chunks between the 2 opposite corners you call the command from and name it. /unmarkregion 'or '/hur: unmark the world/region file you are in. /unmarkchunk 'or '/huc: unmark the world/region file/chunk you are in. /unmarkarea 'or '/hua: unmark all marked areas you are in. /listmarks 'or '/hlm: list all regions/chunks/areas you have marked (have a config item to set whether or not there will be a limit for marked, and which one ?) /showlocation 'or '/hsl: display a 32x32 minimap with the region filename as a caption, where each dot will represent a chunk of the region file you are in, with some character code to indicate (un)generated chunks, (un)marked chunks, the chunk you are in. Also display a 16x16 minimap with the region filename as a caption, where each dot will represent a block of the chunk you are in, with some character code to indicate your location. /reportregion 'or '/hrr: mark the world/region file you are in (or the one you provide x/y coordinates for?) in a separate admin targeted list, along with a reason (border issues, official build griefed, offensive build, corrupted region, etc.) and an action request (smooth, restore, delete). The action would be done automatically (with prior backup of the region file) provided a quorum of player's reports is reached. /reportchunk 'or '/hrc: same at the chunk level. Backuping / restoring places All the following command will be accessible only from the console, without any player connected: /backupregions: copy all the marked regions in a backup subdir of the server, and create region files containing only the marked chunks in this subdir. /restoreregions: copy back all the region files in the backup subdir to the server map and merge partial region files with the existing ones (all of this with prior confirmation!). /deleteregions: delete all the existing region files (with prior confirmation). /importregion: restore a specific region and merge partial region files with the existing one (with prior confirmation in this case). This feature will allow to import Massive structures :-) Terrain smoothing (to be done) Using region files repositories (to be done. Admin only: /addrepository /removerepository /listrepositories /searchrepository /importfromrepository : will require blocks ID conversion) Other ideas (to be done. Admin only: block distribution, chest locator, block locator, entity locator, ...) Other discarded ideas At first, I thought about providing regions/chunks border/center highlighting (with a beacon like effect), but there are already existing mods/plugins to do that (for example, the Chunk Highlighter plugin, although it is not for MC 1.7.10), and I don't know how to do that with the Bukkit API. I'm still interested in using particles effects (visible to the calling player only) to provide some alternative. I also thought about providing a way to automatically mark every (player?) LOTR custom waypoint, but this would introduce a little dependancy between this plugin and the LOTR mod, and probably mark numerous useless spots... Anyway, this would be better done through a system level command to be used for the first map reset before players make an habit of marking their builds. For area marks, my first thought was to use some kind of special corner block, but this is unneeded, and 2 corner marks are enough. Another discarded idea would have been to provide a command to name a Point of Interest (x/y coordinate). This would be useful for my LOTR Overviewer software, but is unrelated to the general purpose of this plugin. Probably better to avoid mixing everything... Similar projects Apart from Mevans' Joetater, I found an unfinished project called Static Chunk Manager with similar objectives. However, they both only cover the backup part of the process. For border smoothing, there are 2 tools available: BestOfBoth and MCMerge (a followup to the first one. Check this tutorial). They both work by placing a river at the boundaries between the old and new map areas, and smoothing the surrounding valley seamlessly together with adjacent chunks. Project origin The design outlined above has been defined and refined through several discussions: * Massive structures now! * Joetater: A Region Saver * Help/Regenerating chunks